package com.global.dao;

import java.util.List;

import com.global.vo.WebObject;
import com.global.model.SystemType;
import com.global.vo.DataType;
import com.global.Constants;

public interface SystemTypeDao extends GenericDao<SystemType, Long> {

	/**
	 * 按照category检索出某一分类中的系统类型清单
	 * @param category 参考 {@linkplain Constants}
	 * @return List
	 * @see Constants
	 */
	List<SystemType> getSystemTypeListByCategory(String category);
	
	/**
	 * 插入/更新SystemType
	 * @param s 需要被保存的SystemType对象
	 * @return 持久化的SystemType对象
	 */
	SystemType saveSystemType(SystemType systemType);
	
	/**
	 * 批量保存SystemType
	 * @param s 需要被保存的SystemType对象
	 * @return true 表示保存成功
	 */
	boolean saveBatchSystemType(List<SystemType> systemTypeList);
	
	/**
	 * 通过类型名称获取到唯一的数据类型信息
	 * <br/>如果通过名称找到多个，则返回空
	 * @param uniqueName 数据类型名称
	 * @return DataType
	 */
	DataType getDataType(String uniqueName);
	/**
	 * 获取数据类型清单
	 * @param name 数据类型名称
	 * @return List
	 */
	List<DataType> getDataTypeList();
	
	/**
	 * 通过Web组件名称获取到唯一的Web组件信息
	 * <br/>如果通过名称找到多个，则返回空
	 * @param name Web组件名称
	 * @return ReportCategory
	 */
	WebObject getWebObject(String name);
	/**
	 * 获取Web组件信息清单
	 * @return List
	 */
	List<WebObject> getWebObjectList();
}
